/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.hk.shop.entity.order;

import org.hibernate.validator.constraints.Length;
import com.thinkgem.jeesite.modules.hk.sys.entity.user.HkUser;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.modules.sys.entity.Area;
import java.util.List;
import com.google.common.collect.Lists;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 订单售后Entity
 * @author 罗天文
 * @version 2018-08-22
 */
public class HkShopUserOrderAfter extends DataEntity<HkShopUserOrderAfter> {
	
	private static final long serialVersionUID = 1L;
	private String ordernumber;		// 订单号
	private String afterstate;		// 售后状态
	private HkUser user;		// 用户id
	private String type;		// 售后类型
	private String refundcontact;		// 退款联系人
	private String refundreason;		// 退款原因
	private Date limitdate;		// 限制退款时间
	private String refundtelephone;		// 退款电话
	private Date canceldate;		// 取消日期
	private String complaintreason;		// 投诉原因
	private String buyerproof;		// 买家举证
	private String sellerproof;		// 卖家举证
	private Date applydate;		// 申请日期
	private Date approvalrefunddate;		// 同意退款日期
	private Date cancelrefunddate;		// 取消退款日期
	private Date refundsdate;		// 退款成功日期
	private String refundamount;		// 退款金额
	private String complaintdesc;		// 投诉描述
	private Date cancelcomplaintdate;		// 取消投诉日期
	private Date complaintdate;		// 投诉日期
	private String refuserefundreason;		// 拒绝退款原因
	private Date refuserefunddate;		// 拒绝退款日期
	private Date agreerefunddate;		// 同意退货退款日期
	private String consignee;		// 收货人
	private String phone;		// 手机号
	private Area province;		// 省
	private Area city;		// 市
	private Area area;		// 区
	private String couriernumber;		// 快递单号
	private Date courierdate;		// 退货日期
	private String courier;		// 快递公司
	private String address;		// 地址
	private Date refusegoodsdate;		// 拒绝退货退款日期
	private String refuseregoodsreason;		// 拒绝退货退款原因
	private Date buyerproofdate;		// 买家举证日期
	private String buyerproofdesc;		// 买家举证描述
	private Date sellerproofdate;		// 卖家举证日期
	private String sellerproofdesc;		// 卖家举证描述
	private List<HkShopUserOrderAfterImages> hkShopUserOrderAfterImagesList = Lists.newArrayList();		// 子表列表
	private List<HkShopUserOrderAfterLog> hkShopUserOrderAfterLogList = Lists.newArrayList();		// 子表列表
	
	public HkShopUserOrderAfter() {
		super();
	}

	public HkShopUserOrderAfter(String id){
		super(id);
	}

	@Length(min=0, max=20, message="订单号长度必须介于 0 和 20 之间")
	public String getOrdernumber() {
		return ordernumber;
	}

	public void setOrdernumber(String ordernumber) {
		this.ordernumber = ordernumber;
	}
	
	@Length(min=0, max=3, message="售后状态长度必须介于 0 和 3 之间")
	public String getAfterstate() {
		return afterstate;
	}

	public void setAfterstate(String afterstate) {
		this.afterstate = afterstate;
	}
	
	public HkUser getUser() {
		return user;
	}

	public void setUser(HkUser user) {
		this.user = user;
	}
	
	@Length(min=0, max=3, message="售后类型长度必须介于 0 和 3 之间")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@Length(min=0, max=100, message="退款联系人长度必须介于 0 和 100 之间")
	public String getRefundcontact() {
		return refundcontact;
	}

	public void setRefundcontact(String refundcontact) {
		this.refundcontact = refundcontact;
	}
	
	@Length(min=0, max=100, message="退款原因长度必须介于 0 和 100 之间")
	public String getRefundreason() {
		return refundreason;
	}

	public void setRefundreason(String refundreason) {
		this.refundreason = refundreason;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLimitdate() {
		return limitdate;
	}

	public void setLimitdate(Date limitdate) {
		this.limitdate = limitdate;
	}
	
	@Length(min=0, max=20, message="退款电话长度必须介于 0 和 20 之间")
	public String getRefundtelephone() {
		return refundtelephone;
	}

	public void setRefundtelephone(String refundtelephone) {
		this.refundtelephone = refundtelephone;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCanceldate() {
		return canceldate;
	}

	public void setCanceldate(Date canceldate) {
		this.canceldate = canceldate;
	}
	
	@Length(min=0, max=100, message="投诉原因长度必须介于 0 和 100 之间")
	public String getComplaintreason() {
		return complaintreason;
	}

	public void setComplaintreason(String complaintreason) {
		this.complaintreason = complaintreason;
	}
	
	@Length(min=0, max=100, message="买家举证长度必须介于 0 和 100 之间")
	public String getBuyerproof() {
		return buyerproof;
	}

	public void setBuyerproof(String buyerproof) {
		this.buyerproof = buyerproof;
	}
	
	@Length(min=0, max=100, message="卖家举证长度必须介于 0 和 100 之间")
	public String getSellerproof() {
		return sellerproof;
	}

	public void setSellerproof(String sellerproof) {
		this.sellerproof = sellerproof;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getApplydate() {
		return applydate;
	}

	public void setApplydate(Date applydate) {
		this.applydate = applydate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getApprovalrefunddate() {
		return approvalrefunddate;
	}

	public void setApprovalrefunddate(Date approvalrefunddate) {
		this.approvalrefunddate = approvalrefunddate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCancelrefunddate() {
		return cancelrefunddate;
	}

	public void setCancelrefunddate(Date cancelrefunddate) {
		this.cancelrefunddate = cancelrefunddate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getRefundsdate() {
		return refundsdate;
	}

	public void setRefundsdate(Date refundsdate) {
		this.refundsdate = refundsdate;
	}
	
	@Length(min=0, max=100, message="退款金额长度必须介于 0 和 100 之间")
	public String getRefundamount() {
		return refundamount;
	}

	public void setRefundamount(String refundamount) {
		this.refundamount = refundamount;
	}
	
	@Length(min=0, max=200, message="投诉描述长度必须介于 0 和 200 之间")
	public String getComplaintdesc() {
		return complaintdesc;
	}

	public void setComplaintdesc(String complaintdesc) {
		this.complaintdesc = complaintdesc;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCancelcomplaintdate() {
		return cancelcomplaintdate;
	}

	public void setCancelcomplaintdate(Date cancelcomplaintdate) {
		this.cancelcomplaintdate = cancelcomplaintdate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getComplaintdate() {
		return complaintdate;
	}

	public void setComplaintdate(Date complaintdate) {
		this.complaintdate = complaintdate;
	}
	
	@Length(min=0, max=100, message="拒绝退款原因长度必须介于 0 和 100 之间")
	public String getRefuserefundreason() {
		return refuserefundreason;
	}

	public void setRefuserefundreason(String refuserefundreason) {
		this.refuserefundreason = refuserefundreason;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getRefuserefunddate() {
		return refuserefunddate;
	}

	public void setRefuserefunddate(Date refuserefunddate) {
		this.refuserefunddate = refuserefunddate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getAgreerefunddate() {
		return agreerefunddate;
	}

	public void setAgreerefunddate(Date agreerefunddate) {
		this.agreerefunddate = agreerefunddate;
	}
	
	@Length(min=0, max=50, message="收货人长度必须介于 0 和 50 之间")
	public String getConsignee() {
		return consignee;
	}

	public void setConsignee(String consignee) {
		this.consignee = consignee;
	}
	
	@Length(min=0, max=20, message="手机号长度必须介于 0 和 20 之间")
	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public Area getProvince() {
		return province;
	}

	public void setProvince(Area province) {
		this.province = province;
	}

	public Area getCity() {
		return city;
	}

	public void setCity(Area city) {
		this.city = city;
	}

	public Area getArea() {
		return area;
	}

	public void setArea(Area area) {
		this.area = area;
	}
	
	@Length(min=0, max=50, message="快递单号长度必须介于 0 和 50 之间")
	public String getCouriernumber() {
		return couriernumber;
	}

	public void setCouriernumber(String couriernumber) {
		this.couriernumber = couriernumber;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCourierdate() {
		return courierdate;
	}

	public void setCourierdate(Date courierdate) {
		this.courierdate = courierdate;
	}
	
	@Length(min=0, max=50, message="快递公司长度必须介于 0 和 50 之间")
	public String getCourier() {
		return courier;
	}

	public void setCourier(String courier) {
		this.courier = courier;
	}
	
	@Length(min=0, max=200, message="地址长度必须介于 0 和 200 之间")
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getRefusegoodsdate() {
		return refusegoodsdate;
	}

	public void setRefusegoodsdate(Date refusegoodsdate) {
		this.refusegoodsdate = refusegoodsdate;
	}
	
	@Length(min=0, max=100, message="拒绝退货退款原因长度必须介于 0 和 100 之间")
	public String getRefuseregoodsreason() {
		return refuseregoodsreason;
	}

	public void setRefuseregoodsreason(String refuseregoodsreason) {
		this.refuseregoodsreason = refuseregoodsreason;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getBuyerproofdate() {
		return buyerproofdate;
	}

	public void setBuyerproofdate(Date buyerproofdate) {
		this.buyerproofdate = buyerproofdate;
	}
	
	@Length(min=0, max=200, message="买家举证描述长度必须介于 0 和 200 之间")
	public String getBuyerproofdesc() {
		return buyerproofdesc;
	}

	public void setBuyerproofdesc(String buyerproofdesc) {
		this.buyerproofdesc = buyerproofdesc;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getSellerproofdate() {
		return sellerproofdate;
	}

	public void setSellerproofdate(Date sellerproofdate) {
		this.sellerproofdate = sellerproofdate;
	}
	
	@Length(min=0, max=200, message="卖家举证描述长度必须介于 0 和 200 之间")
	public String getSellerproofdesc() {
		return sellerproofdesc;
	}

	public void setSellerproofdesc(String sellerproofdesc) {
		this.sellerproofdesc = sellerproofdesc;
	}
	
	public List<HkShopUserOrderAfterImages> getHkShopUserOrderAfterImagesList() {
		return hkShopUserOrderAfterImagesList;
	}

	public void setHkShopUserOrderAfterImagesList(List<HkShopUserOrderAfterImages> hkShopUserOrderAfterImagesList) {
		this.hkShopUserOrderAfterImagesList = hkShopUserOrderAfterImagesList;
	}
	public List<HkShopUserOrderAfterLog> getHkShopUserOrderAfterLogList() {
		return hkShopUserOrderAfterLogList;
	}

	public void setHkShopUserOrderAfterLogList(List<HkShopUserOrderAfterLog> hkShopUserOrderAfterLogList) {
		this.hkShopUserOrderAfterLogList = hkShopUserOrderAfterLogList;
	}
}